package com.ld.hpfs.dao;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.ld.hpfs.pojo.Exp;
import com.ld.hpfs.pojo.Invoice;
import com.ld.hpfs.pojo.Transport;

@Repository
public interface EnterInvoiceMapper {		
  ArrayList<HashMap<String,Object>> getInvoiceMainList(HashMap<String,Object> param);
  
  int getInvoiceMainListCount(HashMap<String,Object> param);
  String getTypeFromHead(HashMap<String,Object> param);
  ArrayList<HashMap<String,Object>> getInvoiceDetailList(HashMap<String,Object> param);
  ArrayList<HashMap<String,Object>> getTransInvoiceDetailList(HashMap<String,Object> param);
  
  void updateInvoiceMain(Invoice invoice);
  void insertInvoiceMain(Invoice invoice);
  void deleteInvoiceMain(HashMap<String,Object> param);
  void updateInvoiceExp(Exp exp);
  void insertInvoiceExp(Exp exp);
  void deleteInvoiceExp(HashMap<String,Object> param);
  void insertInvoiceTrans(Transport trans);
  void updateInvoiceTrans(Transport trans);
  void deleteInvoiceTrans(HashMap<String,Object> param);
  void insertInvoiceDetail(HashMap<String,Object> param);
  void updateInvoiceDetail(HashMap<String,Object> param);
  void deleteInvoiceDetail(HashMap<String,Object> param);
  int getInvoiceMainId(HashMap<String,Object> param);
  
  void deleteInvoiceDetailFromNo(HashMap<String,Object> param);
  
  ArrayList<HashMap<String,Object>> getInvoiceType(HashMap<String,Object> param);
  ArrayList<HashMap<String,Object>> getInvoiceType2(HashMap<String,Object> param);
  
  ArrayList<HashMap<String,Object>> getClientInfoForEnter(HashMap<String,Object> param);
  
  ArrayList<HashMap<String,Object>> getGoodsInfoForEnter(HashMap<String,Object> param);
  
  ArrayList<HashMap<String,Object>> getSellerInfoForEnter(HashMap<String,Object> param);
  
  ArrayList<HashMap<String,Object>> getExpoList(String headId);
  ArrayList<HashMap<String,Object>> getTransList(String getTransList);
  int getHeadIdFromExp(int headId);
  int getHeadIdFromTrans(int headId);
  
  ArrayList<HashMap<String,Object>> getDetailIdsForDelete(HashMap<String,Object> param);
  void deleteTransDetail(HashMap<String,Object> temp);
  
  ArrayList<HashMap<String,Object>> getStartFromId(HashMap<String,Object> param);
  
  int checkSplitOrMerge(HashMap<String,Object> param);

  String getDocForRule();

  ArrayList<HashMap<String, Object>> getRuleSet(String companyId);

  HashMap<String, Object> getCustCount(HashMap<String, Object> paramforcust);

  ArrayList<HashMap<String, Object>> getCustCodeForNew();

  void insertCustData(HashMap<String, Object> paramForNewCust);

  HashMap<String, Object> getCustForInput(HashMap<String, Object> paramForCount);

  int getCustIdForInput(HashMap<String, Object> cust);

  String getContactIdForInput(HashMap<String, Object> cust);

  String getExpressCpnIdForInput(HashMap<String, Object> cust);
}
